package com.itheima.service;

import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.pojo.Role;
import com.itheima.pojo.User;

import java.util.List;

/**
 * @author 吴
 * @version V1.0
 * @Description 后台用户管理
 * @Package com.itheima.service
 * @date 2021/11/28 14:36
 */
public interface UserService {

    /**
     * 通过用户名查询信息
     * @param username
     * @return
     */
    User findByUsername(String username);

    /**
     * @Description:  根据条件查询（分页查询）
     * @Param:  queryPageBean
     * @return:  PageResult
     * @Author: 文攀
     * @Date: 2021/12/8
     */
    PageResult selectByCondition(QueryPageBean queryPageBean);

    /**
     * @Description:  查询所有角色
     * @Param:
     * @return:
     * @Author: 文攀
     * @Date: 2021/12/8
     */
    List<Role> findRoles();

    /**
     * @Description: 添加用户
     * @Param: user，roles
     * @return:
     * @Author: 文攀
     * @Date: 2021/12/8
     */
    void add(User user, Integer[] roles);

    /**
     * @Description: 根据用户id查询用户信息
     * @Param: id（用户id）
     * @return:
     * @Author: 文攀
     * @Date: 2021/12/8
     */
    User findById(Integer userId);

    /**
     * @Description: 根据用户id查询用户所有的角色
     * @Param:
     * @return:
     * @Author: 文攀
     * @Date: 2021/12/8
     */
   Integer[] findRolesByUserId(Integer userId);
    /** 
        * @Description: 修改用户 
        * @Param:  
        * @return:  
        * @Author: 文攀
        * @Date: 2021/12/8 
        */ 
    void update(User user, Integer[] roleIds);

    /**
     * @Description: 根据用户id删除用户
     * @Param: userId(用户id)
     * @return:
     * @Author: 文攀
     * @Date: 2021/12/9
     */
    void deleteById(Integer userId);

    /**
     * 分页查找所有体质项（中医体质辨识）
     * @param queryPageBean
     * @return
     */
    PageResult findPhysical(QueryPageBean queryPageBean);
}
